home *** CD-ROM | disk | FTP | other *** search
-
- The DTU API:
- ------------
-
- This file describes the API that is supported since DTU version 1.40.
- All numbers mentioned in this file are written in hex!
-
- The DTU API conforms (mostly) to the Alternative Mutliplex Interrupt
- Specification. The description of this specification can be found in
- Ralf Brown's Interrupt List.
-
- A short summary: The programs which used the old multiplex interrupt
- had fixed mux-numbers they installed themselves at.
- The idea of the Alternative Mux is that a program scans
- the Mux for the first free number available and installs
- itself at that number. The TSR can return 2 signature
- fields to another program to provide installation checks.
- The other program checks the signatures and acts upon
- that. The Alternative Mux Specification also has some
- other predefined functions, of which DTU only supports
- Function 01 and 03...
-
- Below is a list of the functions supported. The function is passed via
- register AL. All subfunctions are passed through register BL. The
- registers which are used to return values, are the only ones modified.
- All flags are preserved. All functions provided in the Extended API
- return AL=0 if the Extended API is not installed...
-
- ╒Function╤═ Description ═════════════════════════════════════════════════╕
- │ 00 │ Installation check Standard API │
- │ │ ~~~~~~~~~~~~~~~~~~ │
- │ │ Expects: Nothing Returns: AL = FF │
- │ │ CX = Version of DTU │
- │ │ (CH=Major,CL=Minor) │
- │ │ DX:DI = Pointer to signature │
- │ │ (See below) │
- ├────────┼─────────────────────────────────────────────────────────────────┤
- │ 01 │ Get API Handler Address Extended API │
- │ │ ~~~~~~~~~~~~~~~~~~~~~~~ │
- │ │ Expects: Nothing Returns: AL = FF │
- │ │ DX:BX = API Handler Address │
- │ │ │
- │ │ This address may be called directly to bypass the Multiplex │
- │ │ Interrupt chain. Use the interrupt protocol (PUSHF/CALL FAR)! │
- ├────────┼─────────────────────────────────────────────────────────────────┤
- │ 03 │ Pop up Extended API │
- │ │ ~~~~~~ │
- │ │ Expects: Nothing Returns: AL = 0 : Already active │
- │ │ FF : Popped up OK │
- │ │ BX = 0 │
- │ │ │
- │ │ BX is officially used as the returncode from the popup code. │
- │ │ However, this function is implemented in the Extended API, │
- │ │ which means that DTU's BUSY-FLAG is automatically set when │
- │ │ processing this function. In other words: No error can be │
- │ │ generated using this function, thus no other returncode is │
- │ │ defined... │
- ├────────┼─────────────────────────────────────────────────────────────────┤
- │ 10 │ Extended API Install Check Standard API │
- │ │ ~~~~~~~~~~~~~~~~~~~~~~~~~~ │
- │ │ Expects: Nothing Returns: AL = FF │
- │ │ BL = 0 : No Extended API │
- │ │ 1 : Ext. API loaded │
- ├────────┼─────────────────────────────────────────────────────────────────┤
- │ 11 │ Utility Install Check Extended API │
- │ │ ~~~~~~~~~~~~~~~~~~~~~ │
- │ │ Expects: BL = Subfunction: │
- │ │ │
- │ │ 00: Get number of utilities installed │
- │ │ Expects: Nothing │
- │ │ Returns: AL = FF │
- │ │ BL = Number of utilities │
- │ │ │
- │ │ 01: Get installed utilities │
- │ │ Expects: DX:DI = Pointer to buffer │
- │ │ (1 byte for each utility) │
- │ │ Returns: AL = FF │
- │ │ Buffer filled │
- │ │ │
- │ │ The buffer is filled with a set of 0's and │
- │ │ 1's. The first byte corresponds to utility │
- │ │ 0, the second to 1, etc. If a byte is zero │
- │ │ it means that the utility is not installed. │
- │ │ If it's non-zero, the utility is loaded. │
- ├────────┼─────────────────────────────────────────────────────────────────┤
- │ 20 │ Get Pop-up Handler Address Extended API │
- │ │ ~~~~~~~~~~~~~~~~~~~~~~~~~~ │
- │ │ Expects: Nothing Returns: AL = FF │
- │ │ DX:DI = Address of DTU's │
- │ │ pop-up handler │
- │ │ │
- │ │ This address may be called directly to let DTU pop up. Use │
- │ │ the interrupt protocol for the call (PUSHF/CALL FAR)! │
- ├────────┼─────────────────────────────────────────────────────────────────┤
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
-
-
- The pointer to the signature fields (Function 00) points to the following
- structure:
-
- Offset Length Description
- 00 8 Blank padded name of Software Producer
- 08 8 Blank padded program name
- 10 max 64. ASCIIZ string with description of the program